package cmd

import (
	"encoding/json"
	"wf-deploy-agent/infra"
	"wf-deploy-agent/util"
)

// Command 基础命令
type Command struct {
	//项目
	ProjectId int64
	//模块
	ModuleId int64
	//批次号
	BatchNO string
	//操作类型(文件分发|发布|修改标识)
	OpType string
	//作用于哪些资源
	Resources []string
	//操作人
	Operator string
	//触发时间戳
	Timestamp int64
	//原始命令
	Raw string
}

func (command *Command) GetHashCode() int {
	bytes, err := json.Marshal(command)
	if err != nil {
		infra.Logger.Errorln(err)
		return 0
	}

	return util.GetHashCode(string(bytes))
}
